package student.aistar.service;

import student.aistar.model.dto.CartProductDTO;
import student.aistar.model.entity.Cart;

import java.util.List;

/**
 * 本类用来演示:
 *
 * @author: qinFeng
 * @date: 2021/9/27 10:05
 */
public interface ICartService {
    /**
     * 根据用户的Id, 查询购物车的数据
     * @param id
     * @return
     */
    List<Cart> userCart(Integer id);


    /**
     * 根据Id删除购物车中的商品
     * @param id
     */
    void deleteCartProduct(Integer id);


    /**
     * 去结算
     * 主要功能是: 用户点击去结算的时候, 把用户点击增加的按钮的数量插入到数据库, 同时根据Id查询到数据库的购物车数据
     * @param productIds
     * @return
     */
    CartProductDTO goToSettle(Integer userId, String productIds, String Nums, String paraList);




    /**
     * 根据用户名称和产品Id查询购物车是否有这个购物车的行
     * @param userId
     * @param productId
     * @return
     */
    Cart selectByUserIdAndProductId(Integer userId, Integer productId, String paraName);


    /**
     * 当第一次加入购物车的时候, 直接插入
     * @param cart
     */
    void addCart(Cart cart);


    /**
     * 更新购物车的数量和价格
     * @param price
     * @param num
     * @param userId
     * @param productId
     */
    void updateCart(double price, Integer num, Integer userId, Integer productId, String paraName);


    /**
     * 将该用户的点击要去结算的购物车产品, 去查询出来
     * @param id
     * @return
     */
    Cart findUserCheckCart(Integer id);
}
